home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_100 / 187_01 / date_fmt.c < prev    next >
C/C++ Source or Header  |  1986-01-26  |  3KB  |  100 lines

  1. /*@*****************************************************/
  2. /*@                                                    */
  3. /*@   date_fmt - returns the current date formatted as */
  4. /*@            requested.  It returns with the buffer  */
  5. /*@            modified and it's value is a pointer    */
  6. /*@            to the buffer to allow stacking.        */
  7. /*@                                                    */
  8. /*@    Usage:  date_fmt(type, buffer);                 */
  9. /*@         where type is:                             */
  10. /*@          0 - mm-dd-yy                              */
  11. /*@          1 - mm/dd/yy                              */
  12. /*@          2 - yymmdd                                */
  13. /*@          3 - mmddyy                                */
  14. /*@          4 - yy-mm-dd                              */
  15. /*@          5 - dd mmm yy                             */
  16. /*@         and buffer is a character array.           */
  17. /*@                                                    */
  18. /*@                                                    */
  19. /*@*****************************************************/
  20.  
  21. /***********************************************************************/
  22. /*                                                                     */
  23. /*    Table of months.                                                   */
  24. /*                                                                     */
  25. /***********************************************************************/
  26.  
  27. struct {
  28.     char *mon;            /* pointer to month name */
  29.     }  mon_name[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun",
  30.                     "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Err"};
  31.  
  32.  
  33. char *date_fmt(date_type, bufr)
  34. int date_type;
  35. char *bufr;
  36. {
  37.     int i;
  38.     char mm[3], dd[3], yy[3];
  39.  
  40.     mm[2] = dd[2] = yy[2] = 0x00;
  41.     dates(bufr);            /* get current date */
  42.     if (bufr[0] == ' ')    /* zero fill month, if necessary */
  43.         bufr[0] = '0';
  44.  
  45.     switch(date_type) {
  46.         
  47.         case 0:
  48.             break;            /* nothing required for mm-dd-yy */
  49.  
  50.         case 1:
  51.             bufr[2] = '/';    /*  mm/dd/yy  */
  52.             bufr[5] = '/';
  53.             break;
  54.  
  55.         case 2:
  56.             strncpy(mm, bufr, 2);        /*   yymmdd  */
  57.             strncpy(dd, &bufr[3], 2);
  58.             strncpy(bufr, &bufr[6], 2);
  59.             strncpy(&bufr[2], mm, 2);
  60.             strncpy(&bufr[4], dd, 2);
  61.             bufr[6] = 0x00;
  62.             break;
  63.  
  64.         case 3:
  65.             strncpy(&bufr[2], &bufr[3], 2);    /*   mmddyy  */
  66.             strncpy(&bufr[4], &bufr[6], 2);
  67.             bufr[6] = 0x00;
  68.             break;
  69.  
  70.         case 4:
  71.             strncpy(mm, bufr, 2);        /*   yy-mm-dd  */
  72.             strncpy(dd, &bufr[3], 2);
  73.             strncpy(bufr, &bufr[6], 2);
  74.             strncpy(&bufr[3], mm, 2);
  75.             strncpy(&bufr[6], dd, 2);
  76.             break;
  77.  
  78.         case 5:
  79.             strncpy(dd, &bufr[3], 2);        /*   dd mmm yy  */
  80.             bufr[2] = ' ';
  81.             i = atoi(bufr) - 1;    
  82.             if ((i < 0) || (i > 11)) 
  83.                 i = 12;                /* set to "Err" */
  84.             strncpy(yy, &bufr[6], 2);
  85.             strncpy(bufr, dd, 2);
  86.             strcpy(&bufr[3], mon_name[i].mon, 3);
  87.             bufr[6] = ' ';
  88.             strncpy(&bufr[7], yy);
  89.             bufr[9] = 0x00;
  90.             break;
  91.  
  92.         default:
  93.             break;
  94.     }
  95.  
  96.     return bufr;
  97.  
  98. }
  99.  
  100.